package com.cy.pj.common;


import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * 1)当项目的启动时会将此类加载到内存吗?会(通过)
 */
@Scope("singleton")  //默认作用于为单例作用域
//@Scope("prototype")   //多例作用域,每次从spring请求类的实例都会创建新的对象
@Lazy  //延迟加载  延迟对象实例的创建,用的时候再去创建
@Component
public class ObjectPool {

    public ObjectPool(){
        System.out.println("构造方法执行了");
    }
    @PostConstruct //生命周期初始化方法,构造方法之后执行,可以在方法内部作用一些初始化
    public void init(){
        System.out.println("init()");
    }
    @PreDestroy //生命周期销毁方法 在对象销毁前做一些资源的释放
    public void desotry(){
        System.out.println("desotry()");
    }
}
